home *** CD-ROM | disk | FTP | other *** search
/ Freelog 22 / freelog 22.iso / Prog / Djgpp / GPC2952B.ZIP / doc / gpc / docdemos / nildemo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-02-09  |  813 b   |  34 lines

  1. program NilDemo;
  2. const
  3.   NodeNum = 10;
  4. type
  5.   PNode = ^TNode;
  6.   TNode = record
  7.     Key: Integer;
  8.     Next: PNode
  9.   end;
  10. var
  11.   Root, Node: PNode;
  12.   Foo: Integer;
  13. begin
  14.   New (Root);
  15.   Root^.Key := 1;             { Set root key }
  16.   Node := Root;
  17.   for Foo := 2 to NodeNum do  { Create linked list with NODE_NUM nodes }
  18.     begin
  19.       New (Node^.Next);
  20.       Node := Node^.Next;
  21.       Node^.Key := Foo        { Set key }
  22.     end;
  23.   Node^.Next := nil;          { Mark end of linked list }
  24.   { Shorten list by removing its first element until list is empty }
  25.   while Root <> nil do
  26.     begin
  27.       Node := Root;
  28.       WriteLn ('Current key:', Root^.Key);
  29.       Root := Root^.Next;
  30.       Dispose (Node);
  31.       Node := nil             { Indicate old node is not assigned }
  32.     end
  33. end.
  34.